package com.example.ad.sdk.ui

import com.example.ad.sdk.domain.view.mvi.intent.IUIEffect
import com.example.ad.sdk.domain.view.mvi.intent.IUiIntent
import com.example.ad.sdk.domain.view.mvi.intent.IUiState
import com.example.ad.sdk.domain.view.mvi.viewmodel.BaseMVIViewModel

// 定义一个密封类AdSplashIntent，继承自IUiIntent接口，用于表示UI意图
sealed class AdSplashIntent: IUiIntent {
    // 定义一个获取轮播图的意图
    data class SaveUrlIntent(val url: String): AdSplashIntent()
}

// 定义一个密封类AdSplashState，继承自IUiState接口，用于表示UI状态
sealed class AdSplashState: IUiState {

}

// 定义一个密封类AdSplashEffect，继承自IUIEffect接口，用于表示UI效果
sealed class AdSplashEffect: IUIEffect {
}

// AdSplashViewModel类，继承自BaseViewModel，用于处理AdSplashIntent意图，维护AdSplashState状态和AdSplashEffect效果
class AdSplashViewModel : BaseMVIViewModel<AdSplashIntent, AdSplashState, AdSplashEffect>() {
    private var url: String? = null
    // 处理UI意图的函数
    override fun onIntentAction(action: AdSplashIntent, currentState: AdSplashState?) {
        // 根据不同的意图执行不同的操作
        when(action){
            is AdSplashIntent.SaveUrlIntent -> {
                url = action.url
            }
        }
    }
}